/**
 * 抽象类 abstract 
 * 这个不太好理解，举个小例子
 * 比如有个按摩院 要招聘 服务生，基础技师，高级技师 三种岗位，
 * 每个岗位都需要有的技能,但每个岗位的技能各不相同，这个时候就用抽象类比较合适
 */

//创建一个抽象类，里面就已个抽象方法 skill 知道都有这个技能要求，但是不知道每个子类的 具体业务逻辑
abstract class Girl_A1{
    abstract skill():void;
}
//下面是三个岗位的子类 都继承 Girl_A1 这个抽象类 
class Waiter_A1 extends Girl_A1{
    skill(){
        console.log('迎宾，倒水');
    }
}

class BaseTeacher_A1 extends Girl_A1 {
    skill(){
        console.log('泰式按摩');
    }
}

class SeniorTeacher_A1 extends Girl_A1 {
    skill(){
        console.log('SPA');
    }
}

let aa_waiter = new Waiter_A1();
let aa_base_teacher = new BaseTeacher_A1();
let aa_senior_teacher = new SeniorTeacher_A1();

aa_waiter.skill();
aa_base_teacher.skill();
aa_senior_teacher.skill();

